//package com.zwj.config;
///**
// * 代码生成器（将mapper.xml输出到resourse下面）mybtis逆向工程
// */
//
//import com.baomidou.mybatisplus.core.toolkit.StringPool;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.InjectionConfig;
//import com.baomidou.mybatisplus.generator.config.*;
//import com.baomidou.mybatisplus.generator.config.po.TableInfo;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//
//import java.util.ArrayList;
//import java.util.List;
//
//// 演示例子，执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
//public class GeneratorConfiguration {
//
//    public static void main(String[] args) {
//        // 代码生成器
//        AutoGenerator autoGenerator = new AutoGenerator();
//        autoGenerator.setGlobalConfig(globalConfig());
//        autoGenerator.setDataSource(dataSourceConfig());
//        autoGenerator.setPackageInfo(packageConfig());
//        autoGenerator.setCfg(injectionConfig());
//        autoGenerator.setTemplate(templateConfig());
//        autoGenerator.setStrategy(strategyConfig());
//        autoGenerator.execute();
//    }
//
//    /**
//     * @return 全局配置
//     */
//    static GlobalConfig globalConfig() {
//        GlobalConfig globalConfig = new GlobalConfig();
//        // Entity、Mapper文件的输出路径
//        globalConfig.setOutputDir(projectPath() + "/src/main/java");
//        globalConfig.setOpen(false);
//        globalConfig.setAuthor("zwj");
//        // 是否覆盖已有文件
//        globalConfig.setFileOverride(true);
//        // 实体类以Entity为后辍z
//        globalConfig.setEntityName("%sEntity");
//        // 业务层接口以Service为后辍
//        globalConfig.setServiceName("%sService");
//        // 开启 BaseResultMap
//        globalConfig.setBaseResultMap(true);
//        // 开启 baseColumnList
//        globalConfig.setBaseColumnList(true);
//        globalConfig.setSwagger2(true);//开启Swagger2模式
//        return globalConfig;
//    }
//
//    /**
//     * @return 数据源配置
//     */
//    static DataSourceConfig dataSourceConfig() {
//        DataSourceConfig dataSourceConfig = new DataSourceConfig();
//        dataSourceConfig.setUrl("jdbc:mysql://39.101.170.85:3306/dev_team?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai");
//        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
//        dataSourceConfig.setUsername("no2");
//        dataSourceConfig.setPassword("123456");
//        return dataSourceConfig;
//    }
//
//    /**
//     * @return 项目路径
//     */
//    static String projectPath() {
//        return System.getProperty("user.dir");
//    }
//
//    /**
//     * Mapper接口的包路径必须与 @MapperScan(basePackages = {"..."}) 注解的属性配置一致。
//     *
//     * @return 包配置
//     */
//    static PackageConfig packageConfig() {
//        PackageConfig packageConfig = new PackageConfig();
//        packageConfig.setParent("com.zwj");
//        // Entity的包名
//        packageConfig.setEntity("entity");
//        // Mapper接口的包名
//        packageConfig.setMapper("mapper");
//        return packageConfig;
//    }
//
//    /**
//     * @return 自定义配置
//     */
//    static InjectionConfig injectionConfig() {
//        InjectionConfig cfg = new InjectionConfig() {
//            @Override
//            public void initMap() {
//                // to do nothing
//            }
//        };
//        cfg.setFileOutConfigList(fileOutConfigList());
//        return cfg;
//    }
//
//    /**
//     * 将mapper.xml文件输出到 /src/main/resources 目录下。
//     * <p>
//     * mapper.xml的路径必须与 application.properties(yml) 中的 mybatis-plus.mapper-locations 配置一致。
//     *
//     * @return 自定义输出文件
//     * @see #templateConfig()
//     */
//    static List<FileOutConfig> fileOutConfigList() {
//        // 默认的模板引擎是 velocity
//        String templatePath = "/templates/mapper.xml.vm";
//        // 自定义输出配置
//        List<FileOutConfig> fileOutConfigList = new ArrayList<>();
//        // 自定义配置会被优先输出
//        fileOutConfigList.add(new FileOutConfig(templatePath) {
//            @Override
//            public String outputFile(TableInfo tableInfo) {
//                // mapper.xml的输出路径
//                return projectPath() + "/src/main/resources/mapper/"
//                        + tableInfo.getXmlName() + StringPool.DOT_XML;
//            }
//        });
//        return fileOutConfigList;
//    }
//
//    /**
//     * @return 配置模板
//     * @see #fileOutConfigList()
//     */
//    static TemplateConfig templateConfig() {
//        TemplateConfig templateConfig = new TemplateConfig();
//        // 不将mapper.xml文件输出到 /src/main/java 目录下
//        templateConfig.setXml(null);
//        return templateConfig;
//    }
//
//    /**
//     * @return 策略配置
//     */
//    static StrategyConfig strategyConfig() {
//        StrategyConfig strategyConfig = new StrategyConfig();
//        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
//        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
//        strategyConfig.setEntityLombokModel(true);
//        strategyConfig.setEntityBooleanColumnRemoveIsPrefix(true);
//        strategyConfig.setEntityTableFieldAnnotationEnable(true);
//        strategyConfig.setRestControllerStyle(true);
//        strategyConfig.setControllerMappingHyphenStyle(true);
//        // 表名前辍
//        strategyConfig.setTablePrefix("sys_");
////        // 要生成代码的数据表
////        strategyConfig.setInclude("sys_user");
//        return strategyConfig;
//    }
//}
